This invention relates to providing media on demand.
Media-on-demand (MoD) systems provide media services in which a user can request over a network a media object from a media server. For example, in a pure video-on-demand (VoD) system, a user at a device connected to the Internet can request from a media server connected to the Internet any video content of his or her choice at any time and almost immediately begin watching the video on the device. The device can be any device capable of connecting to the Internet and downloading, decoding, and playing the video content, such as a stationary or mobile computer, a telephone, a personal digital assistant, and a television.
A number of techniques can deliver VoD, including batched multicast and periodic broadcasting. Batched multicast schemes include collecting (“batching”) user requests for a particular video stream over successive time intervals. Users requesting the same video stream during the same time interval receive the video stream through a single multicast of the entire video. The time intervals can be long because the maximum start-up latency experienced by a user is the length of the video divided by the number of copies of the video that can be simultaneously transmitted for a common link capacity. Start-up latency, also called service latency or playout latency, is the delay between the time a user requests a video and the time the video is actually played at the user side. For example, if the time interval is five minutes for a two hour long video, batched multicasting may result in as many as twenty-four concurrent multicasts of the same video (120 minutes divided by five minutes equals twenty-four).
Periodic broadcasting schemes include periodically broadcasting entire videos. Periodic broadcasting bypasses the need to process individual user requests for a video because the transmission schedules used for a periodic broadcast are determined off-line. The periodically broadcast videos can be encoded with a constant bit rate (CBR) approach or with a variable bit rate (VBR) approach. With CBR encoding, a video is transmitted at a constant, uniform transmission rate. With VBR encoding, such as Moving Pictures Experts Group series one (MPEG-1) and MPEG series two (MPEG-2), a video is transmitted at variable transmission rates. VBR encoding can use less average bandwidth than CBR encoding for the same image video and the same quality.
Depending on the periodic broadcasting scheme, the video may be transmitted as one complete unit or as separate, fragmented segments. The start-up latency with periodic broadcasting depends not on user requests like batched broadcasting, but on the type of periodic broadcasting scheme used and the number of videos to be transmitted. For example, if the video is broadcast as a whole in its entirety, the maximum start-up latency for ten movies, each encoded at three megabits per second (Mbps), each two hours long, and all broadcast over a 155 Mbps link, is approximately twenty-four minutes. This means that a user may have to wait up to twenty-four minutes between requesting any of the ten movies and receiving the video on his or her device.
If the video is broadcast in segments, all of the segments are broadcasted periodically, each segment in a separate stream. Once the first segment of a video is available to be downloaded and played at the user side, continuous playout of the entire video can begin according to the timing constraints of the broadcast segment schedules. The segments for a particular video are collectively called a broadcast series. The lengths of the segments in a video are typically of equal size or are integer multiples of the length of the first segment. In a broadcast series, the first segment may be short such that its broadcast can be repeated often, tending to lower playout latency. Video frames within from all of the simultaneously broadcast streams are multiplexed into a single link to a network without buffering. Bits sent along the link may be lost if the aggregate traffic of the simultaneously broadcast streams on the link exceeds the link's capacity.